claspを使ったGoogle Apps Scriptのソース管理を試してみた

claspを使ったGoogle Apps Scriptのソース管理を試してみた

claspを利用すると、Google Apps Script(GAS)をローカルで管理出来る様になります!
Clock Icon2020.03.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、大前です。

今回は Google Apps Script の管理を CLI で行う事が出来る clasp を触ってみましたので、ブログを書いていきます。

claspとは

Google が提供する、Google Apps Script(GAS)をローカルで管理出来る様になる CLI ツールです。

ソースやプロジェクト管理、ローカルからのスクリプト実行が可能となります。

Google Apps Script

google / clasp

やってみた

では、実際に clasp をインストールして使用してみたいと思います。

Google Apps Script プロジェクトの作成

前準備として、今回使用する Google Apps Script のプロジェクトを作成しておきます。

 

管理画面左上の「+新しいプロジェクト」を選択。

 

図の様に初期状態のプロジェクトが表示されますので、とりあえずこのまま保存します。

 

プロジェクト名は「clasp-test-script」として保存しました。

clasp インストール

インストールには npm を使用しますので、インストールされていない方は先にインストールをしておきましょう。

clasp のインストールは、下記コマンドのみで完了します。簡単ですね。

$ npm install -g @google/clasp

インストール後、バージョンが確認出来ればインストール完了です。

$ clasp --version

Google Apps Script API の有効化

clasp を使用するためには、Google Apps Script API を有効化する必要があります。

 

Google Apps Script の管理画面より、左下の「設定」を選択。

 

「Google Apps Script API」という項目がありますので、「オフ」になっている場合は「オン」に変更します。

プロジェクトの clone

clasp でプロジェクトのソースをローカルに clone していきます。

GAS のソースをローカルに持ってくるためには、プロジェクトの scriptId が必要です。

$ clasp clone --help
Usage: clasp clone [options] [scriptId] [versionNumber]

scriptId は、管理画面でプロジェクトを開いた際の URL の末尾に記載されていますので、こちらをコピーして使います。

 

取得した scriptId を使用して clone を実行します。

$ clasp clone xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Warning: files in subfolder are not accounted for unless you set a '.claspignore' file.
Cloned 2 files.
└─ appsscript.json
└─ コード.js
Not ignored files:
└─ appsscript.json
└─ コード.js

Ignored files:
└─ .clasp.json
$

下記ファイルがクローンされました。

「.clasp.json」はクレデンシャル情報(scriptId)が記載されているファイルになります。

$ ls -a
.               ..              .clasp.json     appsscript.json コード.js

ローカルの変更を反映

スクリプトのクローンができたので、最後にローカルで加えた変更を GAS に反映させてみます。

反映は「clasp push」で行います。今回は myFunction() に Logger の記述を追加してみました。

$ vi コード.js
# function myFunction() {
#         Logger.log('test')
# }
$ clasp push
└─ appsscript.json
└─ コード.js
Pushed 2 files.

 

GAS のプロジェクトを開いてみると、ローカルの変更が反映されている事が確認できます!

おわりに

clasp を使って Google Apps Script プロジェクトの取得や、ローカル変更の反映をやってみました。

ローカルの変更を CLI で反映出来る様になるだけで、出来る事の幅が広くなると思いますので、是非ご活用ください。

次は、github と連携した CD を試したいと思います。

 

以上、AWS 事業本部の大前でした。

参考

Google Apps Script

google / clasp

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.